package com.aimei520.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.aimei520.po.admin.Access;
import com.aimei520.po.admin.Role;
import com.aimei520.po.admin.Url;
import com.aimei520.po.admin.User;
import com.aimei520.po.meun.Menu;

public interface AdminMapper {
	
	/**
	 * 增加角色对象
	 * @param role
	 */
	void addRole(Role role);
	
	/**
	 * 根据传入的角色对象信息查询满足的角色对象
	 * 如果传入一个空的对象，则查询所有的
	 * @param role
	 * @return
	 */
	List<Role> queryRole(Role role);
	
	/**
	 * 根据传入的role对象  更新对应id的role
	 * @param role
	 */
	void updateRole(Role role);
	
	/**
	 * 根据传入的role对象  删除对应id的role
	 * @param role
	 */
	void deleteRole(Role role);
	
	
	/**
	 * 添加可用路径
	 * @param url
	 */
	void addUrl(Url url);
	
	/**
	 * 查找路径 ，根据传入的url对象进行查找
	 * @param url
	 * @return
	 */
	List<Url> queryUrl(Url url);
	
	/**
	 * 更改url 根据传入的url对象更改，status状态表示可用状态
	 * @param url
	 */
	void updateUrl(Url url);
	
	/**
	 * 查找所有的
	 * @return List<Url>
	 */
	List<Url> queryHeadUrls();
	
	/**
	 * 返回用户所有权限
	 * @return
	 */
	List<Menu> findAllMenu_byRoleId(int roleId);
	/**
	 * 查询角色拥有的所有权限
	 * @param roleId
	 * @return
	 */
	List<Access> queryRoleAccess(int roleId);
	
	/**
	 * 批量添加权限到Access表中
	 */
	void addAccess(@Param("addAccess") List<Access> addAccess);
	
	/**
	 * 更新状态为2  表示删除多个Access
	 * @param deleteAccess
	 */
	void deleteAccess(@Param("deleteAccess")List<Integer> deleteAccess,@Param("roleId")int roleId);
	
	
	
	/****************账号mapper***************/
	/**
	 * 添加用户
	 * @param user
	 */
	void addUser(User user);
	
	/**
	 * 查询用户
	 * @param user
	 * @return
	 */
	List<User> queryUser(User user);

	/**
	 * 更改用户
	 * @param user
	 */
	void updateUser(User user);
}
